KVM 相关
Table of Contents
1. 通用的性能优化
1.1. 直通物理硬盘
sudo virsh list --inactive
找到需要配置的机器,执行 sudo virsh edit <vm_name>
来编辑配置文件。
在 devices
块内有硬盘配置,大概长这样:
<devices>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/WinSv2019.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<!-- ... -->
<!-- a lot of config -->
<!-- ... -->
</devices>
在这部分下面加入新的硬盘配置,加好之后大概长这样:
<devices>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/WinSv2019.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<!-- disk passthrough example start -->
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/disk/by-id/ata-Hitachi_HUS724040ALE641_PAJL9L0X'/>
<target dev='vdb' bus='virtio'/>
</disk>
<!-- disk passthrough example end -->
<!-- ... -->
<!-- a lot of config -->
<!-- ... -->
</devices>
1.2. 网卡配置
网卡性能依清单递减:
(Linux,perf)
对应 virtio 驱动。PCI
对应 e1000e 驱动。legacy PCI
对应 e1000 驱动。legacy
对应 rtl8139 驱动。
2. 备份与导入 Guest
2.1. 备份 Guest
第一步,关闭 Guest。
执行 virsh list --all
查看 Host 上都有哪些 Guest。
virsh shutdown <vm_name>
关闭需要备份的 Guest。
最后执行 virsh list --all
检查 Guest 是否已经被关闭。
第二步,备份 Guest 配置文件。
KVM Guest 的配置可以由 virsh dumpxml <vm_name>
得到。
执行 virsh dumpxml <vm_name> > /opt/kvm_backup/<vm_name>.xml
备份配置文件。
第三步,备份 Guest 磁盘文件。
执行 virsh domblklist <vm_name>
可以找到 Guest 磁盘文件的位置。默认的位置为 /var/lib/libvirt/images。
执行 cp /var/lib/libvirt/images/<vm_disk_name>.qcow2 /opt/kvm_backup
复制即可完成备份。
最后可以执行 virsh undefine <vm_name>
取消注册被备份的虚拟机。
2.2. 导入 Guest
virsh list --all
查看虚拟机列表,确保当前虚拟机和要导入的虚拟机不存在名称冲突。
先将磁盘文件放到备份时的路径下,再用配置文件重新生成虚拟机即可:
- 复制 Guest 磁盘文件到指定路径下
cp /opt/kvm_backup/<vm_disk_name>.qcow2 /var/lib/libvirt/images/
- 导入虚拟机的配置文件
virsh define --file /opt/kvm_backup/<vm_name>.xml
导入后,执行 virsh start <vm_name>
即可启动 Guest。